/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package suministros.ejb30.business;

import java.math.BigDecimal;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import suministros.ejb30.DAO.SumiGestionOrdenesDAOLocal;
import suministros.ejb30.TO.ComprobantePagoTO;
import suministros.ejb30.TO.DetalleImpuestoTO;
import suministros.ejb30.TO.DetalleOrdenTO;
import suministros.ejb30.TO.ImpuestoTO;
import suministros.ejb30.TO.LicitacionActividadTO;
import suministros.ejb30.TO.LicitacionSuministroTO;
import suministros.ejb30.TO.OrdenTO;
import suministros.ejb30.TO.ParametrosConsultaTO;
import suministros.ejb30.TO.RegularizacionMovimientoTO;
import suministros.ejb30.TO.ZonaTO;
import suministros.ejb30.entity.ComprobantePago;
import suministros.ejb30.entity.DetalleOrden;
import suministros.ejb30.entity.DetallePedidoSuministroPK;
import suministros.ejb30.entity.DetallePlantillaImpuesto;
import suministros.ejb30.entity.Impuesto;
import suministros.ejb30.entity.Orden;
import suministros.ejb30.helper.EmailVacioException;

/**
 *
 * @author Administrador
 */
@Stateless
public class SumiAdministracionOrdenesBean implements SumiAdministracionOrdenesBeanLocal {

    @EJB
    private SumiGestionOrdenesDAOLocal sumiGestionOrdenesDAO;

    public String insertarOrden(Orden orden, List<DetalleOrden> detalle) throws Exception {
        return this.sumiGestionOrdenesDAO.insertarOrden(orden, detalle);
    }

    public OrdenTO isExisteOrden(String nro_orden) throws Exception {
        return this.sumiGestionOrdenesDAO.isExisteOrden(nro_orden);
    }

    public boolean insertarComprobanteDeOrden(ComprobantePago comprobante, String cod_orden) throws Exception {
        return this.sumiGestionOrdenesDAO.insertarComporbanteDeOrden(comprobante, cod_orden);
    }

    public List<DetalleImpuestoTO> retornarDetallesDeImpuesto(int plantilla, BigDecimal monto) throws Exception {
        return this.sumiGestionOrdenesDAO.retornarDetallesDeImpuesto(plantilla, monto);
    }

    public List<LicitacionSuministroTO> verificarDetallePedidoEnLicitacion(String cod_pedido) throws Exception {
        return this.sumiGestionOrdenesDAO.verificarDetallePedidoEnLicitacion(cod_pedido);
    }

    public List<LicitacionSuministroTO> verificarDetallePedidoEnLicitacion(DetallePedidoSuministroPK detalle_pedido) throws Exception {
        return this.sumiGestionOrdenesDAO.verificarDetallePedidoEnLicitacion(detalle_pedido);
    }

    public List<LicitacionActividadTO> getActividadesPorLicitacionEspecifica(String id_licitacion, String id_suministro) throws Exception {
        return this.sumiGestionOrdenesDAO.getActividadesPorLicitacionEspecifica(id_licitacion, id_suministro);
    }

    public List<OrdenTO> consultarOrden(ParametrosConsultaTO parametros, int tipo_orden, int pagActual, int pagTamanno) throws Exception {
        return this.sumiGestionOrdenesDAO.consultarOrden(parametros, tipo_orden, pagActual, pagTamanno);
    }

    public List<ComprobantePagoTO> consultarComprobante(ParametrosConsultaTO parametros, int pagActual, int pagTamanno) throws Exception {
        return this.sumiGestionOrdenesDAO.consultarComprobante(parametros, pagActual, pagTamanno);
    }

    public boolean anularOrden(String nro_orden) throws Exception {
        return this.sumiGestionOrdenesDAO.anularOrden(nro_orden);
    }

    public List<DetalleOrdenTO> getListaDetalleOrden(String nro_orden) throws Exception {
        return this.sumiGestionOrdenesDAO.getListaDetalleOrden(nro_orden);
    }

    public boolean modificarOrden(Orden orden, List<DetalleOrden> detalles) throws Exception {
        return this.sumiGestionOrdenesDAO.modificarOrden(orden, detalles);
    }

    public byte[] getComprobanteArchivo(int id_comprobante) throws Exception {
        return this.sumiGestionOrdenesDAO.getComprobanteArchivo(id_comprobante);
    }

    public boolean generaDocumentoAEmail(String nro_orden, int tipo, String cod_proveedor) throws EmailVacioException, Exception {
        return this.sumiGestionOrdenesDAO.generaDocumentoAEmail(nro_orden, tipo, cod_proveedor);
    }

    public int getNumeroDeOrdenes(ParametrosConsultaTO parametros, int tipo_orden) throws Exception {
        return this.sumiGestionOrdenesDAO.getNumeroDeOrdenes(parametros, tipo_orden);
    }

    public int getNumeroDeComprobantes(ParametrosConsultaTO parametros) throws Exception {
        return this.sumiGestionOrdenesDAO.getNumeroDeComprobantes(parametros);
    }

    public List<OrdenTO> getOrdenesSinComprobante(List<ZonaTO> zonas_usuario, String id_empresa) throws Exception {
        return this.sumiGestionOrdenesDAO.getOrdenesSinComprobante(zonas_usuario, id_empresa);
    }

    public String verificaDetalleOrdenEnPresupuesto(List<DetalleOrdenTO> detalle_orden, int mes) throws Exception {
        return this.sumiGestionOrdenesDAO.verificaDetalleOrdenEnPresupuesto(detalle_orden, mes);
    }

    public boolean modificarComprobanteArchivo(int id_comprobante, byte[] archivo) throws Exception {
        return this.sumiGestionOrdenesDAO.modificarComprobanteArchivo(id_comprobante, archivo);
    }

    public List<DetalleOrdenTO> listarOrdenesSuministros(ParametrosConsultaTO parametros) throws Exception {
        return this.sumiGestionOrdenesDAO.listarOrdenesSuministros(parametros);
    }

    public List<OrdenTO> listarOrdenesProveedores(ParametrosConsultaTO parametros) throws Exception {
        return this.sumiGestionOrdenesDAO.listarOrdenesProveedores(parametros);
    }

    public List<OrdenTO> listarOrdenesTotales(ParametrosConsultaTO parametros) throws Exception {
        return this.sumiGestionOrdenesDAO.listarOrdenesTotales(parametros);
    }

    public List<DetalleOrdenTO> listarOrdenesCuentas(ParametrosConsultaTO parametros) throws Exception {
        return this.sumiGestionOrdenesDAO.listarOrdenesCuentas(parametros);
    }

    public List<ComprobantePagoTO> getComprobantesOrden(String nro_orden) throws Exception {
        return this.sumiGestionOrdenesDAO.getComprobantesOrden(nro_orden);
    }

    public List<RegularizacionMovimientoTO> getMovimientosRegularizar(String cod_proveedor) throws Exception {
        return this.sumiGestionOrdenesDAO.getMovimientosRegularizar(cod_proveedor);
    }

    public boolean regularizaMovimientos(List<RegularizacionMovimientoTO> lista, String nro_orden) throws Exception {
        return this.sumiGestionOrdenesDAO.regularizaMovimientos(lista, nro_orden);
    }

    public BigDecimal getMontoImpuesto(Integer tipo_plantilla, BigDecimal sub_total) throws Exception {
        return sumiGestionOrdenesDAO.getMontoImpuesto(tipo_plantilla, sub_total);
    }

    public List<ImpuestoTO> getListaImpuestos() throws Exception {
        return sumiGestionOrdenesDAO.getListaImpuestos();
    }

    public boolean operaImpuesto(Impuesto impuesto,DetallePlantillaImpuesto dpi) throws Exception {
        return sumiGestionOrdenesDAO.operaImpuesto(impuesto,dpi);
    }

    public boolean eliminaImpuesto(int id_impuesto) throws Exception {
        return sumiGestionOrdenesDAO.eliminaImpuesto(id_impuesto);
    }

    public boolean finalizarOrden(String nro_orden) throws Exception {
        return sumiGestionOrdenesDAO.finalizarOrden(nro_orden);
    }

    public boolean modificaComprobante(ComprobantePagoTO comprobante) throws Exception {
        return sumiGestionOrdenesDAO.modificaComprobante(comprobante);
    }

    

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method" or "Web Service > Add Operation")
}
